package com.zmn.oms.common.constant;

import com.google.common.collect.Lists;
import com.zmn.common.constant.GlobalConsts;

import java.util.*;

/**
 * 类描述：渠道常量
 *
 * @author heciqi
 * @date 2019/11/5 11:58
 */
public class ChannelConsts {

    /**
     * 禁止转单渠道
     */
    //public final static List<Integer> CHANNEL_ID_DISABLED_TRUN_LIST = Arrays.asList(1511, 1468, 1322, 10104, 1353, 1336, 10105, 1249, 1259, 1313, 1315, 1334, 1337, 1347, 1348, 1386, 1398, 10106, 31067, 31096, 1344, 1210, 10108, 10132, 1493);
    public final static List<Integer> CHANNEL_ID_DISABLED_TRUN_LIST = Arrays.asList();

    /**
     * 需要生成默认服务项的渠道
     */
    public final static List<Integer> CHANNEL_ID_CREATE_DEFAULT_SERVICE_ITEM = Arrays.asList(
            OrderConsts.CHANNEL_ID_TMALL_WYG,
            OrderConsts.CHANNEL_ID_TMALL_BIZ_OPPEIN,
            OrderConsts.CHANNEL_ID_TMALL_BIZ_LAIMD,
            OrderConsts.CHANNEL_ID_TMALL_BUSINESS
    );

    /**
     * 禁止操作服务完成的渠道
     */
    public final static List<Integer> CHANNEL_ID_DISABLED_SERVCOMPLETE = Arrays.asList(
            34568,// 云丁
           // 33892, // 智米
            35079 // 顺丰安维
    );

    /**
     * 不需要支付定金的渠道
     */
    public final static List<Integer> CHANNEL_ID_NO_PAY_DEPOSIT_AMOUNT = Arrays.asList(
            32794,// 58到家直约API
            33979,// 58到家同城公寓
            10108,// 到位电通王
            33551,// 到位快益修
            32809,// 到位直选
            33727,// 精选3.0疏通
            33930,// 精选3.0开锁
            1522, // 同城家电D
            1381,// [1级]雅居乐	社区22
            1446,// [1级]雅居乐	社区23
            10677,// [1级]雅居乐	社区24
            10678,// [1级]雅居乐	社区25
            10679,// [1级]雅居乐	社区26
            10680,// [1级]雅居乐	社区27
            10681,// [1级]雅居乐	社区28
            31047,// [1级]雅居乐	社区29
            31048,// [1级]雅居乐	社区30
            1210, // 平台渠道C2（到位啄木鸟清洗）
            1511, // 平台渠道B系列
            1322, // 平台渠道B系列
            10104,// 平台渠道B系列
            34929,// 平台渠道B系列
            1344, // 平台渠道C15
            10777,// 平台渠道E1
            41454 // 天猫勤鸽保外服务
    );

	/**
	 * 渠道层级：一级渠道
	 */
	public final static int RANK_ONE = 1;

	/**
	 * 渠道层级：二级渠道
	 */
	public final static int RANK_TWO = 2;

    /**
     * 微信公众号
     */
    public final static Integer CHANNEL_ID_WECHAR_GZH = 40002;
    /**
     * 上海寻梦信息技术有限公司
     */
    public final static Integer CHANNEL_ID_SHXM = 34061;

    /**
     * 啄木鸟返修渠道ID
     */
    public final static Integer CHANNEL_ID_REWOEK_ZMN = 34345;

    /**
     * 言而有信返修渠道ID
     */
    public final static Integer CHANNEL_ID_REWOEK_YS = 34346;

    /**
     * 川南环保返修渠道ID
     */
    public final static Integer CHANNEL_ID_REWOEK_CNHB = 34347;

    /**
     * 一步维修返修渠道ID
     */
    public final static Integer CHANNEL_ID_REWOEK_SAAS = 34350;

    /**
     * 需要分配虚拟公司的渠道
     */
    public final static List<Integer> CHANNEL_ID_ASSIGN_VIRTUAL_COMANY_LIST = Arrays.asList(32804, 33591);

    /**
     * 渠道ID：41020；渠道名称：江泰救援
     */
    public final static Integer CHANNEL_ID_JIANG_TAI_JIU_YUAN = 41020;

    /**
     * 渠道ID：34553；渠道名称：口碑啄木鸟
     */
    public final static Integer CHANNEL_ID_KOUBEI = 34553;

    /**
     * 渠道ID：41877；渠道名称：万科幸福社
     */
    public final static Integer CHANNEL_ID_WANKE = 41877;


    /**
     * 提示支付的渠道
     */
    public final static List<Integer> CHANNEL_ID_ALERT_PAY = Collections.emptyList();

    /**
     * F订单不支持资金账户支付的渠道（天猫）
     */
    public final static List<Integer> CHANNEL_ID_NOSUPPORT_ACCOUNT_PAY = Arrays.asList(
            OrderConsts.CHANNEL_ID_TMALL_WYG,
            OrderConsts.CHANNEL_ID_TMALL_BUSINESS
    );

    /**
     * 渠道客户类型 1.个人客户,2.企业客户,3.渠道商,4.厂家,5.测试,6.黑名单
     */
    public final static Integer CHANNEL_CUSTOMER_TYPE_PERSONAL = 1;
    public final static Integer CHANNEL_CUSTOMER_TYPE_COMPANY = 2;
    public final static Integer CHANNEL_CUSTOMER_TYPE_CHANNEL = 3;
    public final static Integer CHANNEL_CUSTOMER_TYPE_FACTORY = 4;
    public final static Integer CHANNEL_CUSTOMER_TYPE_TEST = 5;
    public final static Integer CHANNEL_CUSTOMER_TYPE_BLACK_LIST = 6;

    /**
     * 渠道类型1.政企渠道2.商家渠道3.厂家渠道4.自有渠道5.推广渠道6.服务商渠道
     */
    public final static int CHANNEL_TYPE_GE = 1;
    public final static int CHANNEL_TYPE_MERCHANT = 2;
    public final static int CHANNEL_TYPE_FACTORY = 3;
    public final static int CHANNEL_TYPE_PERSONAL = 4;
    public final static int CHANNEL_TYPE_SPREAD = 5;
    public final static int CHANNEL_TYPE_SP = 6;


    /**
     * 禁止后台完成的渠道
     * 32794	58到家直约API	平台渠道B02
     * 33979	58到家同城公寓
     */
    public final static List<Integer> DISABLE_COMPLETE_CHANNEL_IDS = Arrays.asList(
            10108,  // 平台渠道C1（到位电通王）
            1210,   // 平台渠道C2（到位啄木鸟清洗）
            33551,  // 平台渠道C3（到位快益修）
            32809,  // 平台渠道C4（到位直选）
            32794,  // 58到家直约API	平台渠道B02
            33979,  // 58到家同城公寓
            41877   //万科幸福社
    );

    /**
     * 禁止人工优惠（后台优惠，工程师优惠）的渠道
     * 32794	58到家直约API	平台渠道B02
     * 33979	58到家同城公寓
     */
    public final static List<Integer> DISABLE_DISCOUNT_CHANNEL_IDS = Arrays.asList(
            32794,
            33979
    );

    /**
     * 允许重复单的渠道
     */
    public final static List<Integer> ALLOW_DUPLICATE_ORDER_CHANNEL_IDS = Arrays.asList(
            10777,  // 京东服务+
            34929,  // 平台渠道E13 （京东到家）
            41115,  // 平台渠道C94（人保2）
            34958,  // 天猫欧派
            35002,  // 天猫莱梅德
            33901,  // 天猫勤鸽管道疏通 战略渠道F13
            31055,  // 天猫B端安装 战略渠道F3
            10133   // 天猫勤鸽 战略渠道F2
    );

    public final static Map<Integer, String> CHANNEL_OPENAPI_SUPPORT_PAYLINK = new HashMap<>(10);
    static {
        CHANNEL_OPENAPI_SUPPORT_PAYLINK.put(41829, "平台物会A");
        CHANNEL_OPENAPI_SUPPORT_PAYLINK.put(41917, "平台国寿");
        CHANNEL_OPENAPI_SUPPORT_PAYLINK.put(41919, "平台财险");
        CHANNEL_OPENAPI_SUPPORT_PAYLINK.put(41877, "万科幸福社");
    }

    /**
     * 获取返修单渠道ID
     *
     * @param plat
     * @return
     */
    public static Integer getReworkChannelId(int plat) {
        switch (plat) {
            case GlobalConsts.PLAT_MARK_YEYX:
                return ChannelConsts.CHANNEL_ID_REWOEK_YS;
            case GlobalConsts.PLAT_MARK_CNHB:
                return ChannelConsts.CHANNEL_ID_REWOEK_CNHB;
            case GlobalConsts.PLAT_MARK_SAAS:
                return ChannelConsts.CHANNEL_ID_REWOEK_SAAS;
            default:
                return ChannelConsts.CHANNEL_ID_REWOEK_ZMN;
        }
    }

    /**
     * 获取返修单渠道ID
     *
     * @param plat
     * @return
     */
    public static Integer getRefundChannelId(int plat) {
        switch (plat) {
            case GlobalConsts.PLAT_MARK_ZMN:
                return 1585;
            case GlobalConsts.PLAT_MARK_YEYX:
                return 32806;
            case GlobalConsts.PLAT_MARK_SAAS:
                return 32808;
            case GlobalConsts.PLAT_MARK_CNHB:
                return 31042;
            default:
                return 1585;
        }
    }

	/**
	 * 获取渠道类型名称
	 *      渠道类型1.政企渠道2.商家渠道3.厂家渠道4.自有渠道5.推广渠道6.服务商渠道
	 *
	 * @param channelType
	 * @return
	 */
	public static String getChannelTypeName(Integer channelType) {
		if (Objects.isNull(channelType)) {
			return "";
		}

		switch (channelType) {
			case CHANNEL_TYPE_GE:
				return "政企渠道";
			case CHANNEL_TYPE_MERCHANT:
				return "商家渠道";
			case CHANNEL_TYPE_FACTORY:
				return "厂家渠道";
			case CHANNEL_TYPE_PERSONAL:
				return "自有渠道";
			case CHANNEL_TYPE_SPREAD:
				return "推广渠道";
			case CHANNEL_TYPE_SP:
				return "服务商渠道";
		}
		return "";
	}

    /**
     * 请引导用户在百度APP上完成订单支付
     * 二级渠道ID：41325、41326、41359、41360、41361、41362、41363
     */
    public final static List<Integer> CHANNEL_ID_BAIDU_PAY_ALERT = Arrays.asList(41325,41326,41359,41360,41361,41362,41363
    ,41491,41492,41494,41495,41496,41497,41498,41505,41506);

    /**
     * 贵州多彩宝支付
     */
    public final static List<Integer> CHANNEL_ID_GZDCB_PAY_ALERT = Arrays.asList(41488);

    /**
     * 请引导用户在 58同城APP上完成订单支付
     * 二级渠道ID：34781, 34783
     */
    public final static List<Integer> CHANNEL_ID_58TONGCHENG_PAY_ALERT = Arrays.asList(34781, 34783);

    /**
     * 强制填写完成码的渠道
     * 32852 平台渠道E5（拼多多）
     */
    public final static List<Integer> CHANNEL_ID_NEED_INPUT_COMPLETE_CODE = Arrays.asList(
            32852
    );

    /**
     * 不判断现场支付，特殊渠道ID：32794、33551、1210、10108、1522、33727、33930、33979、32809
     */
    public final static List<Integer> CHANNEL_ID_NON_CHECK_LOCAL_PAY = Arrays.asList(
            32794,33551,1210,10108,33979,32809,
            1481, // 国美管家-平台渠道E10；家电维修
            41479, // 国美管家-平台渠道E33，宅修
            1522, // 58同城精选
            33727, // 58精选管道疏通
            33930, // 58精选开锁
            33930 // 58精选开锁
    );
}
